パノラマは通常単独で開くとウインドウサイズに100%で調整されますが、アスペクトを指定して、ウインドウサイズが変更されてもアスペクト比を一定に保つ方法。
【使用するファイル】
xmlファイル
【基本コード】16:9に指定
xmlファイル内に以下のコードを記述
<events onresize="fixaspectresize(16,9);" />
<action name="fixaspectresize">
div(aspect,%1,%2);
mul(destwidth, stagewidth, aspect);
copy(destheight, stagewidth);
if(destwidth GT stagewidth, div(dwnscale,stagewidth,destwidth), set(dwnscale,1.0) );
mul(destwidth, destwidth, dwnscale);
mul(destheight, destheight, dwnscale);
if(destheight GT stageheight, div(dwnscale,stageheight,destheight), set(dwnscale,1.0) );
mul(destwidth, destwidth, dwnscale);
mul(destheight, destheight, dwnscale);
sub(destx, stagewidth, destwidth);
sub(desty, stageheight, destheight);
mul(destx, destx, 0.5);
mul(desty, desty, 0.5);
copy(area.x, destx);
copy(area.y, desty);
copy(area.width, destwidth);
copy(area.height, destheight);
</action>
【解説】
fixaspectresize(16,9)の部分を任意の数字に置き換える。
例;4:3にしたい場合
fixaspectresize(4,3)
【実例】
<krpano version="1.16">
<include url="skin/defaultskin.xml" />
<events onresize="fixaspectresize(16,9);" />
<action name="fixaspectresize">
div(aspect,%1,%2);
mul(destwidth, stagewidth, aspect);
copy(destheight, stagewidth);
if(destwidth GT stagewidth, div(dwnscale,stagewidth,destwidth), set(dwnscale,1.0) );
mul(destwidth, destwidth, dwnscale);
mul(destheight, destheight, dwnscale);
if(destheight GT stageheight, div(dwnscale,stageheight,destheight), set(dwnscale,1.0) );
mul(destwidth, destwidth, dwnscale);
mul(destheight, destheight, dwnscale);
sub(destx, stagewidth, destwidth);
sub(desty, stageheight, destheight);
mul(destx, destx, 0.5);
mul(desty, desty, 0.5);
copy(area.x, destx);
copy(area.y, desty);
copy(area.width, destwidth);
copy(area.height, destheight);
</action>
<view hlookat="0" vlookat="0" maxpixelzoom="1.0" fovmax="150" limitview="auto" />
<preview url="mukogawa1.tiles/preview.jpg" />
<image type="CUBE" multires="true" tilesize="512" progressive="false">
<level tiledimagewidth="4776" tiledimageheight="4776">
<cube url="mukogawa1.tiles/mres_%s/l4/%0v/l4_%s_%0v_%0h.jpg" />
</level>
<level tiledimagewidth="2388" tiledimageheight="2388">
<cube url="mukogawa1.tiles/mres_%s/l3/%0v/l3_%s_%0v_%0h.jpg" />
</level>
<level tiledimagewidth="1194" tiledimageheight="1194">
<cube url="mukogawa1.tiles/mres_%s/l2/%0v/l2_%s_%0v_%0h.jpg" />
</level>
<level tiledimagewidth="597" tiledimageheight="597">
<cube url="mukogawa1.tiles/mres_%s/l1/%0v/l1_%s_%0v_%0h.jpg" />
</level>
<mobile>
<cube url="mukogawa1.tiles/mobile_%s.jpg" />
</mobile>
</image>
</krpano>